/*
    simplecookbook  -  simplecookbook.ingredientes.ManterIngredientes.java
                             -------------------
    begin                : 08/10/2008
    copyright            : (C) 2008 by cristovao
    email                : cristovao.wollieson@gmail.com
 ***************************************************************************/

/*
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful, but   *
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 *   General Public License for more details.                              *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,   *
 *   MA  02111-1307 USA                                                    *
 ***************************************************************************/

/**
 * Pacote responsavel pelo controle de ingredientes do sistema
 * 
 * @author cristovao
 */
package org.ybacoby.simplecookbook.ingredientes;

import java.util.ArrayList;

import org.ybacoby.simplecookbook.database.IRepositorioDatabase;
import org.ybacoby.simplecookbook.exception.SimpleCookBookException;



/**
 * @author cristovao
 *
 */
public class ManterIngredientes implements IRepositorioDatabase<Ingredientes> {

	/**
	 * O respositorio que sera usado
	 */
	private IRepositorioDatabase<Ingredientes> repositorio;
	
	/**
	 * Constructor
	 * 
	 * @param repositorio O repositorio que sera usado
	 */
	public ManterIngredientes(IRepositorioDatabase<Ingredientes> repositorio) {
		this.repositorio = repositorio;
	}

	/**
	 * @see simplecookbook.ingredientes.IRepositorioDatabase#adicionar(Ingredientes)
	 */
	public void adicionar(Ingredientes ingrediente) throws SimpleCookBookException {
		// Validando se o cartao seria um outro tipo de objeto ou se o codigo esta vaziu
		if (!(ingrediente instanceof Ingredientes)) new SimpleCookBookException();

		// Adicionando o ingrediente no repositorio
		this.repositorio.adicionar(ingrediente);
		
	}

	/**
	 * @see simplecookbook.ingredientes.IRepositorioDatabase#alterar(Ingredientes)
	 */
	public void alterar(Ingredientes ingrediente) throws SimpleCookBookException {
		// Validando se o cartao seria um outro tipo de objeto ou se o codigo esta vaziu
		if (!(ingrediente instanceof Ingredientes)
				|| (ingrediente.getCodigo() == null))
			new SimpleCookBookException();

		// Alterando o ingrediente no repositorio
		this.repositorio.alterar(ingrediente);
		
	}

	/**
	 * @see simplecookbook.ingredientes.IRepositorioDatabase#excluir(Ingredientes)
	 */
	public void excluir(Ingredientes ingrediente) throws SimpleCookBookException {
		// Validando se o cartao seria um outro tipo de objeto ou se o codigo esta vaziu
		if (!(ingrediente instanceof Ingredientes)
				|| (ingrediente.getCodigo() == null))
			new SimpleCookBookException();

		// Excluindo o ingrediente do repositorio
		this.repositorio.excluir(ingrediente);
		
	}

	/**
	 * @see simplecookbook.ingredientes.IRepositorioDatabase#procurar(Ingredientes)
	 */
	public ArrayList<Ingredientes> procurar(Ingredientes ingrediente)
			throws SimpleCookBookException {
		// Validando se o cartao seria um outro tipo de objeto ou se o codigo esta vaziu
		/*if (!(ingrediente instanceof Ingredientes)
				|| (ingrediente.getCodigo() == null))
			new SimpleCookBookException();*/

		// Procurando todos os ingredientes de acordo com o creiterio de pesquisa
		return this.repositorio.procurar(ingrediente);
	}

	/**
	 * @see simplecookbook.ingredientes.IRepositorioDatabase#totalIngredientes()
	 */
	public int totalItens() throws SimpleCookBookException {
		return this.repositorio.totalItens();
	}

}
